package com.lzl.controller;

import com.lzl.pojo.Dept;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import javax.annotation.Resource;
import java.util.List;

@RestController
public class DeptConsumerController {

    // 消费者不应该有service层
    // RestTemplate提供给用户直接调用即可, 提供的服务就是给用户多种远程便捷访问Http服务的方法
    @Resource
    private RestTemplate restTemplate;

    // private final static String REST_URL_PREFIX = "http://localhost:8001";
    private static final String REST_URL_PREFIX = "http://SPRINGCLOUD-PROVIDER-DEPT";

    @RequestMapping("/consumer/dept/list")
    public List<Dept> getList(){
        return restTemplate.getForObject(REST_URL_PREFIX + "/dept/list", List.class);
        // 这里因为使用的是Get请求, 所以用的是get, 如果是post请求就需要使用postForObject
    }

    @RequestMapping("/consumer/dept/get/{id}")
    public Dept get(@PathVariable("id") Long id){
        return restTemplate.getForObject(REST_URL_PREFIX + "/dept/get" + id, Dept.class);
        // 这里其实就可以发现SpringCloud和Dubbo的区别了
    }
}
